package com.truyen.persistence.dao;

import java.util.List;

import com.truyen.persistence.dao.base.GenericJpaBaseDao;
import com.truyen.persistence.entity.ChapterTam;
import com.truyen.persistence.entity.TruyenKiemHiep;
import com.truyen.persistence.entity.TruyenMa;
import com.truyen.persistence.entity.TruyenTinhCam;
import com.truyen.persistence.entity.TruyenTranh;
import com.truyen.persistence.entity.TruyenTrinhTham;
import com.truyen.utils.PagingInfo;

public interface ChapterTamDao extends GenericJpaBaseDao<ChapterTam, Long> {

	ChapterTam findAliasvTruyen(TruyenTranh truyen, String alias);

	List<ChapterTam> getLstChapterTamByTruyen(TruyenTranh truyen, String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	List<ChapterTam> getLstAllChapterTam(String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	List<ChapterTam> getLstFromSourceBy(int sourceBy);

	List<ChapterTam> getByTruyen(TruyenTranh truyen);

	List<ChapterTam> getByTruyen(TruyenTrinhTham truyen);

	List<ChapterTam> getByTruyen(TruyenTinhCam truyen);

	List<ChapterTam> getByTruyen(TruyenKiemHiep truyen);
	
	List<ChapterTam> getByTruyen(TruyenMa entity);

	ChapterTam findAliasvTruyen(TruyenKiemHiep truyen, String alias);

	ChapterTam findAliasvTruyen(TruyenTrinhTham truyen, String alias);

	ChapterTam findAliasvTruyen(TruyenTinhCam truyen, String alias);

	List<ChapterTam> getLstFromSourceByVTruyenNotNull(int sourceBy,
			String truyenNotNull);

	List<ChapterTam> getLstChapterTamByTruyen(TruyenKiemHiep truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);
	
	List<ChapterTam> getLstChapterTamByTruyen(TruyenTinhCam truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);
	
	List<ChapterTam> getLstChapterTamByTruyen(TruyenTrinhTham truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	ChapterTam findAliasvTruyen(TruyenMa truyen, String alias);

	List<ChapterTam> getLstChapterTamByTruyen(TruyenMa truyen, String kwSearch,
			String sort, String sortBy, PagingInfo pInfo);

}
